package com.example.myalertdialog;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button showDialogBtn = findViewById(R.id.show_dialog_btn);

        // 给按钮绑定单击事件
        showDialogBtn.setOnClickListener(this::showDialogBtnClick);
    }

    /**
     * 显示对话框按钮点击事件
     * @param v 视图对象
     */
    private void showDialogBtnClick(View v) {
        // 创建AlertDialog构建器
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        View view = getLayoutInflater().inflate(R.layout.dialog_view, null);

        builder.setIcon(R.drawable.baseline_info_24) // 设置图标
                .setTitle("提示消息") // 设置标题
                .setMessage("今天天气怎么样啊？") // 添加消息
                .setView(view) // 设置自定义布局
                .setPositiveButton(R.string.dialog_ok_btn_text, this::okClick) // 设置确定按钮
                .setNegativeButton(R.string.dialog_cancel_btn_text, this::cancelClick) // 设置取消按钮
                .setNeutralButton(R.string.dialog_neutral_btn_text, this::neutralClick) // 设置中间按钮
                .create() // 创建AlertDialog
                .show() // Alert显示Dialog
        ;
    }

    /**
     * 对话框中间按钮事件
     * @param dialog 对话框
     * @param which which
     */
    private void neutralClick(DialogInterface dialog, int which) {
        Log.i(TAG, "点击了自定义neutral按钮~~~");
    }

    /**
     * 对话框取消按钮事件
     * @param dialog 对话框
     * @param which which
     */
    private void cancelClick(DialogInterface dialog, int which) {
        Log.i(TAG, "点击了取消按钮~~~");
    }

    /**
     * 对话框确认按钮事件
     * @param dialog 对话框
     * @param which which
     */
    private void okClick(DialogInterface dialog, int which) {
        Log.i(TAG, "点击了确定按钮~~~");
    }
}